package com.atguigu.tingshu.ai.tools;

import com.alibaba.dashscope.app.Application;
import com.alibaba.dashscope.app.ApplicationParam;
import com.alibaba.dashscope.app.ApplicationResult;
import dev.langchain4j.agent.tool.P;
import dev.langchain4j.agent.tool.Tool;
import org.springframework.stereotype.Component;

@Component
public class BailianTool {
    
    @Tool("当用户提出关于数字人视频的需求时，使用本工具。若用户后续追问数字人视频的生成进度、请求发送视频，也调用本工具。")
    public String callBailianAgent(@P("用户传来的关于数字人生成需求的消息") String message) {
        System.out.println("=== 百炼工具被调用 ===");
        System.out.println("接收到的消息: " + message);
        System.out.println("消息长度: " + message.length());
        System.out.println("====================");
        try {
            ApplicationParam param = ApplicationParam.builder()
                    .apiKey(System.getenv("DASH_SCOPE_API_KEY"))
                    .appId("2073a10dbf9040aa979855b706c12b35")
                    .prompt(message)
                    .build();

            Application application = new Application();
            ApplicationResult result = application.call(param);

            if (result != null && result.getOutput() != null) {
//                返回mcp调用的回复信息：
                return result.getOutput().getText();
            } else {
                return "未收到有效响应";
            }
        } catch (Exception e) {
            return "调用百炼智能体失败: " + e.getMessage();
        }
    }
}